package com.example.inami.third.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.inami.common.domain.R;
import com.example.inami.common.web.BaseController;
import com.example.inami.third.entity.CfsDataNbTemp;
import com.example.inami.third.service.CfsDataNbTempService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.io.Serializable;
import java.util.List;
import java.util.concurrent.CompletableFuture;

/**
 * (CfsDataNbTemp)表控制层
 *
 * @author inami
 * @since 2025-03-07 14:02:57
 */
@RestController
@RequestMapping("cfsDataNbTemp")
@Slf4j
public class CfsDataNbTempController extends BaseController {
    /**
     * 服务对象
     */
    @Resource
    private CfsDataNbTempService cfsDataNbTempService;

    /**
     * 分页查询所有数据
     *
     * @param page          分页对象
     * @param cfsDataNbTemp 查询实体
     * @return 所有数据
     */
    @RequestMapping("listAll")
    public R selectAll(Page<CfsDataNbTemp> page, CfsDataNbTemp cfsDataNbTemp) {
        return R.ok(this.cfsDataNbTempService.page(page, new QueryWrapper<>(cfsDataNbTemp)));
    }

    @RequestMapping("list")
    public R selectPage(Page<CfsDataNbTemp> page, CfsDataNbTemp cfsDataNbTemp) {
        page = new Page<>(1, 10);
        Page<CfsDataNbTemp> page1 = this.cfsDataNbTempService.page(page, new QueryWrapper<>(cfsDataNbTemp));
        return R.ok(page1);
    }
    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @RequestMapping("{id}")
    public R selectOne(@PathVariable Serializable id) {
        return R.ok(this.cfsDataNbTempService.getById(id));
    }

    /**
     * 新增数据
     *
     * @param cfsDataNbTemp 实体对象
     * @return 新增结果
     */
    @RequestMapping("save")
    public R insert(@RequestBody @Validated CfsDataNbTemp cfsDataNbTemp) {
        return R.ok(this.cfsDataNbTempService.save(cfsDataNbTemp));
    }

    /**
     * 修改数据
     *
     * @param cfsDataNbTemp 实体对象
     * @return 修改结果
     */
    @RequestMapping("update")
    public R update(@RequestBody CfsDataNbTemp cfsDataNbTemp) {
        return R.ok(this.cfsDataNbTempService.updateById(cfsDataNbTemp));
    }

    /**
     * 删除数据
     *
     * @param idList 主键结合
     * @return 删除结果
     */
    @RequestMapping("delete")
    public R delete(@RequestParam("idList") List<Long> idList) {
        return R.ok(this.cfsDataNbTempService.removeByIds(idList));
    }

    @RequestMapping("message")
    public R message(@RequestBody CfsDataNbTemp cfsDataNbTemp) {
        // 异步执行业务操作
        CompletableFuture.runAsync(() -> {
            //异步代码
            try {
                // 异步代码
                System.out.println(cfsDataNbTemp);
                System.out.println(Thread.currentThread().getName());
                Page<CfsDataNbTemp> page = new Page<>(1, 10);
                //Page<CfsDataNbTemp> page1 = this.cfsDataNbTempService.page(page, new QueryWrapper<>(cfsDataNbTemp));
            } catch (Exception e) {
                // 捕获并打印异常信息
                log.error("异步任务执行出错: {}", e.getMessage());
                //e.printStackTrace();
            }
        });

        return R.ok();
    }

}

